// pages/phone-login/phone-login.js
import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    vcode: '',
    tipName: '获取验证码',
    iscodeDown: false,
    codeDownTime: 10,
    isTimeId: null,
  },
  // 表单值发生变化时设置数据双向绑定
  changeValue(e) {
    // console.log(e);
    this.setData({
      [e.target.dataset.name]: e.detail.value,
    })
    // console.log(this.data.phone,this.data.vcode);
  },
  // 获取验证码
  async getVcode() {
    // 验证手机号是否合法
    const reg = /^1(3|4|5|6|7|8|9)\d{9}$/
    if (!reg.test(this.data.phone)) {
      wx.showToast({
        title: '手机号不合法',
        icon: 'none',
        duration: 1500
      })
      return
    }
    // 如果倒计时开始了不进行后面代码
    if (this.data.iscodeDown) return
    // 倒计时开始
    this.setData({
      tipName: this.data.codeDownTime,
      iscodeDown: true
    })
    this.data.isTimeId = setInterval(() => {
      this.data.codeDownTime--
      if (this.data.codeDownTime >= 1) {
        this.setData({
          tipName: this.data.codeDownTime,
        })
      } else {
        // 时间小于1时清除定时器
        clearInterval(this.data.isTimeId)
        this.setData({
          tipName: '获取验证码',
          codeDownTime: 10,
          iscodeDown: false
        })
      }
    }, 1000)
    // 发送请求获取验证码
    const res = await request({ url: 'user/vcode', data: { phone: this.data.phone } })
    // console.log(res,123);
    if (res.data.status === 0) {
      wx.showToast({
        title: `${res.data.vcode}`,
        icon: 'none',
      })
    }

  },
  // 手机号登录
  async phoneLogin() {
    const res = await request({
      url: 'user/login',
      method: 'POST',
      data: { phone: this.data.phone, vcode: this.data.vcode }
    })
    // console.log(res, 1);
    if (res.data.status === 0) {
      wx.showToast({
        title: '手机号登录成功',
        icon: 'none',
      })
      wx.setStorageSync('token', res.data.token)
      wx.reLaunch({
        url: '/pages/home/home',
      })
    } else {
      wx.showToast({
        title: res.data.message,
        icon: 'none',
        duration: 1500
      })
    }

  },

})